package com.sz.admin.datainfo.service;

import com.sz.admin.datainfo.pojo.dto.DriverUserCreateDTO;
import com.sz.admin.datainfo.pojo.dto.DriverUserUpdateDTO;
import com.sz.admin.datainfo.pojo.dto.DriverUserListDTO;
import com.sz.admin.datainfo.pojo.dto.DriverVehicleQueryDTO;
import com.sz.admin.datainfo.pojo.vo.DriverUserVO;
import com.sz.admin.datainfo.pojo.vo.DriverVehicleInfoVO;
import com.sz.core.common.entity.PageResult;
import com.sz.core.common.entity.SelectIdsDTO;

import java.util.List;

/**
 * <p>
 * 司机用户 Service
 * </p>
 *
 * @author sz-admin
 * @since 2025-09-12
 */
public interface DriverUserService {

    /**
     * 创建司机用户
     */
    void create(DriverUserCreateDTO dto);

    /**
     * 更新司机用户
     */
    void update(DriverUserUpdateDTO dto);

    /**
     * 分页查询司机用户列表
     */
    PageResult<DriverUserVO> page(DriverUserListDTO dto);

    /**
     * 查询司机用户列表
     */
    List<DriverUserVO> list(DriverUserListDTO dto);

    /**
     * 删除司机用户
     */
    void remove(SelectIdsDTO dto);

    /**
     * 获取司机用户详情
     */
    DriverUserVO detail(Long id);

    /**
     * 根据司机ID查询车辆信息及监控文件记录
     */
    PageResult<DriverVehicleInfoVO> queryDriverVehicleInfo(DriverVehicleQueryDTO dto);
    
    /**
     * 根据手机号查询司机用户
     */
    DriverUserVO selectByPhone(String phone);
    
    /**
     * 根据手机号查询司机用户（包含密码）
     */
    com.sz.admin.datainfo.pojo.po.DriverUser selectByPhoneWithPassword(String phone);
}